package com.ray.util.weixin;

import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.ray.protocol.constants.Color;

/**
 * 消息通知模版
 *
 * @author Shensg
 * 2018年5月28日
 */
public class WeixinTemplateList {

    public static String templateColor = Color.TEMPLATE.getColorCode();

    /**
     * 订单状态变更通知
     * 模版ID    8UV_DeCXP5DoVEHuyrDnOjTV7DEta2E_dZHDgg9rr0o
     *
     * @param first         小标题
     * @param keyword1订单号
     * @param keyword2订单状态
     * @param remark        备注
     *                      颜色可以为null则默认  templateColor
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param remarkColor
     * @return * 尊敬的黄先生\n\r \n\r 您的订单已提交成功！
     * 订单号：2016xxxxxx
     * 订单状态：下单成功
     * 下单时间：2016/8/8  PM 2:20:31 \n\r 订单详情：机器类别+故障 \n\r    预约时间：2016/8/8  PM 2:20:31 \n\r 我们已经收到您的订单，我们立即安排工程师为您服务！
     */
    public static JSONObject packJsonToOrderStatus(String first, String keyword1, String keyword2, String remark, String firstColor, String keyword1Color, String keyword2Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 系统验证码通知
     * 模版ID	 9SNq1d6Wed02ZqPqb8tkCvVUIQ7pXq69Fr3nrUcKP0A
     *
     * @param first         小标题
     * @param keyword1      验证码
     * @param keyword2      时间
     * @param remark        备注
     *                      * 颜色可以为null则默认  templateColor
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param remarkColor
     * @return 内容示例
     * 您好，无线连接验证码已发送给您.
     * 验证码：ABCDEFG
     * 时间：2014年9月17日 17:00
     * 请在验证界面输入验证码，有问题请联系Helpdesk
     */
    public static JSONObject packJsonToValidCode(String first, String keyword1, String keyword2, String remark, String firstColor, String keyword1Color, String keyword2Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 新订单通知
     * 模版ID		B_xNvnR6adr9ho_3zNWjqBSuR_R2Ij5FgDVfW6tTbJY
     *
     * @param first
     * @param keyword1      订单编号
     * @param keyword2      服务类型
     * @param keyword3      下单时间
     * @param keyword4      客户姓名
     * @param keyword5      客户地址
     * @param remark
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param keyword3Color
     * @param keyword4Color
     * @param keyword5Color
     * @param remarkColor
     * @return 您好，您有新的订单需要处理
     * 订单编号：20151011000111
     * 服务类型：设备保养
     * 下单时间：2015-10-11 15:30
     * 客户姓名：张三
     * 客户地址：北京市海淀区人民医院妇产科
     * 点击这里查看处理详细订单
     */
    public static JSONObject packJsonToNewOrderNotice(String first, String keyword1, String keyword2, String keyword3, String keyword4, String keyword5, String remark,
                                                      String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String keyword4Color, String keyword5Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonkeyword4 = new JSONObject();
            jsonkeyword4.put("value", keyword4);
            jsonkeyword4.put("color", keyword4Color != null ? keyword4Color : templateColor);
            json.put("keyword4", jsonkeyword4);

            JSONObject jsonkeyword5 = new JSONObject();
            jsonkeyword5.put("value", keyword5);
            jsonkeyword5.put("color", keyword5Color != null ? keyword5Color : templateColor);
            json.put("keyword5", jsonkeyword5);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);


        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 报警通知
     * 模版ID		SEw74bsrGq2Jz8YDp-QLKz3suxWjjFBQve039-ArmHs
     *
     * @param first
     * @param keyword1      报警类型
     * @param keyword2      报警设备
     * @param keyword3      报警时间
     * @param remark
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param keyword3Color
     * @param remarkColor
     * @return 尊敬的用户，你的大狗发生警报
     * 报警类型：入侵警报
     * 报警设备：门磁探头
     * 报警时间：2015年8月20日
     * 请及时处理
     */
    public static JSONObject packJsonToErrorNotice(String first, String keyword1, String keyword2, String keyword3, String remark,
                                                   String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);


            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);


        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 异常提醒
     * 模版ID		VY94iSA7dZnGzfu7iNdQjzsIFpoOduOLupTNaFDTKj4
     *
     * @param first
     * @param keyword1      异常类型
     * @param keyword2      时间
     * @param remark
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param remarkColor
     * @return 您好，您家中的用电出现异常！
     * 异常类型：配电箱检测到漏电故障
     * 时间：2014年12月12日12时30分
     * 请仔细检查家中电器是否存在短路情况。
     */
    public static JSONObject packJsonToWarningNotice(String first, String keyword1, String keyword2, String remark,
                                                     String firstColor, String keyword1Color, String keyword2Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 订单提醒
     * 模版ID		W_gzhDzp6mR9az_FipxLL49y-526YdpZVqShVbR93Cc
     *
     * @param first
     * @param keyword1      订单编号
     * @param keyword2      客户姓名
     * @param keyword3      客户电话
     * @param keyword4      客户地址
     * @param keyword5      客户备注
     * @param remark
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param keyword3Color
     * @param keyword4Color
     * @param keyword5Color
     * @param remarkColor
     * @return 您好，您的账户新产生一笔回收订单
     * 订单编号：M201506111539
     * 客户姓名：张三
     * 客户电话：13333333333
     * 客户地址：上海市徐家汇美罗城3楼
     * 客户备注：周六上午
     * 请尽快联系客户，更多订单详细信息请登录优易换后台！
     */
    public static JSONObject packJsonToOrderInfoNotice(String first, String keyword1, String keyword2, String keyword3, String keyword4, String keyword5, String remark,
                                                       String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String keyword4Color, String keyword5Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonkeyword4 = new JSONObject();
            jsonkeyword4.put("value", keyword4);
            jsonkeyword4.put("color", keyword4Color != null ? keyword4Color : templateColor);
            json.put("keyword4", jsonkeyword4);

            JSONObject jsonkeyword5 = new JSONObject();
            jsonkeyword5.put("value", keyword5);
            jsonkeyword5.put("color", keyword5Color != null ? keyword5Color : templateColor);
            json.put("keyword5", jsonkeyword5);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);


        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 考勤通知
     * 模版ID		X7ZQo8XNaQf_qS63eV1R6oqXeo1GSXBXSU6w0pS9esI
     *
     * @param first
     * @param keyword1      姓名
     * @param keyword2      考勤号
     * @param keyword3      时间
     * @param remark
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param keyword3Color
     * @param remarkColor
     * @return 我的考勤
     * 姓名：张三
     * 考勤号：9999
     * 时间：2015年9月29日 20:21
     * 早上好！新的一天，新的心情！我们一起努力，根本停不下来！
     */
    public static JSONObject packJsonToCheckWork(String first, String keyword1, String keyword2, String keyword3, String remark,
                                                 String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);


            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);


        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 申请批复通知
     * 模版ID		YZ-XYrfpgePDfNxSxQRrnzPiy35C_ypXi8Iwe3enbiQ
     *
     * @param first
     * @param keyword1      审批结果
     * @param keyword2      协助人
     * @param keyword3      批准时间
     * @param remark
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param keyword3Color
     * @param remarkColor
     * @return 申请批复通知
     * 审批结果：已同意
     * 协助人：李四、王五
     * 批准时间：2015.12.03
     * 备注：你们去现场协助一下
     * 请尽快修好！
     */
    public static JSONObject packJsonToApplyStatus(String first, String keyword1, String keyword2, String keyword3, String remark,
                                                   String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);


        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 审核通过通知
     * 模版ID	 kJA-uIovVk67_e6PYobap7mxchDcf_fQNkObMEi9Lg8
     *
     * @param first
     * @param keyword1      审核信息
     * @param keyword2      审核人
     * @param keyword3      审核时间
     * @param remark
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param keyword3Color
     * @param remarkColor
     * @return 设备&lt;电磁炉&gt;
     * 审核信息：你申请对&lt;电磁炉&gt;的控制权限已通过！
     * 审核人：谢福文
     * 审核时间：2016/04/29
     * 立刻体验
     */
    public static JSONObject packJsonToAudit(String first, String keyword1, String keyword2, String keyword3, String remark,
                                             String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);


        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }


    /**
     * @param first
     * @param keyword1      设备（类型）
     * @param keyword2      变更事项
     * @param keyword3      变更时间
     * @param remark
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param keyword3Color
     * @param remarkColor
     * @return 您收到一条权限变更提醒：
     * 设备：网关-001
     * 变更事项：成为管理员
     * 变更时间：2017-8-28 18:19:34
     * 点击查看详细
     * @author nate
     * 模版ID	 LT7_p4qzC_FWrh5lZBkO4gRX213MSxCHmvFdbzqqEao(WeiXinParamesUtil.permissionChangeTemplateID)
     */
    public static JSONObject packJsonPermissionChange(String first, String keyword1, String keyword2, String keyword3, String remark,
                                                      String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);


        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }


    /**
     * @param first
     * @param keyword1      申请类型
     * @param keyword2      申请人姓名
     * @param keyword3      申请人电话
     * @param keyword4      申请时间
     * @param keyword5      申请内容
     * @param remark        备注
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param keyword3Color
     * @param keyword4Color
     * @param keyword5Color
     * @param remarkColor
     * @return 您好！您有待审核的任务，请于1天内审核。
     * 申请类型：经销商申请
     * 申请人姓名：陈xxx
     * 申请人电话：18905917xxx
     * 申请时间：2014年7月21日 18:36
     * 申请内容：申请金牌经销商
     * 感谢您的支持，祝您生活愉快。
     * @author nate
     * 待审核任务提醒
     * 模版ID	 Ugl14MUqyvpWkHZPm9wuju_1tC_68FoLYfPV2muCvD0（WeiXinParamesUtil.watiApprovalTemplateID）
     */
    public static JSONObject packJsonWatiApproval(String first, String keyword1, String keyword2, String keyword3, String keyword4, String keyword5, String remark,
                                                  String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String keyword4Color, String keyword5Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonkeyword4 = new JSONObject();
            jsonkeyword4.put("value", keyword4);
            jsonkeyword4.put("color", keyword4Color != null ? keyword4Color : templateColor);
            json.put("keyword4", jsonkeyword4);

            JSONObject jsonkeyword5 = new JSONObject();
            jsonkeyword5.put("value", keyword5);
            jsonkeyword5.put("color", keyword5Color != null ? keyword5Color : templateColor);
            json.put("keyword5", jsonkeyword5);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 标题:审批结果通知
     * 模版id:ZXyk7-vzXUTCkzRyTmV5QApIrrqo2Jm2sUqn-Ii50pQ
     * @param first 小标题
     * @param keyword1 审批人
     * @param keyword2 审批内容
     * @param remark 备注
     * @param firstColor
     * @param keyword1Color
     * @param keyword2Color
     * @param remarkColor
     * @return 内容示例：
     * 审批结果通知
     * ---------------
     * 张三员工您好，您的请假申请已批复
     * 审批人：李嘉
     * 审批内容：同意请假
     * 点击查看详情。
     * @author 王荣
     */
    public static JSONObject packJsonApprovalResult(String first, String keyword1, String keyword2, String remark,
                                                    String firstColor, String keyword1Color, String keyword2Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 标题:新维修单提醒
     * 模版id:h3Met0evJPqfiqrAZI0K4GOuV_lGdmWKD63ykvhetKg
     * {{first.DATA}}
     * 类别：{{keyword1.DATA}}
     * 报修单位：{{keyword2.DATA}}
     * 报修部门：{{keyword3.DATA}}
     * 报修人：{{keyword4.DATA}}
     * 手机号码：{{keyword5.DATA}}
     * {{remark.DATA}}
     * 内容示例：
     * 审批结果通知
     * ---------------
     * 您有一条新的维修单提醒
     * 类别：办公用品-&gt;电脑
     * 报修单位 ：报修单位名称
     * 报修部门：报修部门名称
     * 报修人：报修人姓名
     * 手机号码：1300000000
     * 请尽快维修，点击查看详情
     */
    public static JSONObject packJsonNewWorkOrderApply(String first, String keyword1, String keyword2, String keyword3, String keyword4, String keyword5, String remark,
                                                       String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String keyword4Color, String keyword5Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonkeyword4 = new JSONObject();
            jsonkeyword4.put("value", keyword4);
            jsonkeyword4.put("color", keyword4Color != null ? keyword4Color : templateColor);
            json.put("keyword4", jsonkeyword4);

            JSONObject jsonkeyword5 = new JSONObject();
            jsonkeyword5.put("value", keyword5);
            jsonkeyword5.put("color", keyword5Color != null ? keyword5Color : templateColor);
            json.put("keyword5", jsonkeyword5);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 标题:派单提醒
     * 模版id:1Nw34qFJxwxvt81l-S8H9EEzuxXo9y_rU8RP1Jvqemw
     * {{first.DATA}}
     * 维修单号：{{keyword1.DATA}}
     * 报修类别：{{keyword2.DATA}}
     * 报修单位：{{keyword3.DATA}}
     * 报修人：{{keyword4.DATA}}
     * 手机号码：{{keyword5.DATA}}
     * {{remark.DATA}}
     * 内容示例：
     * 审批结果通知
     * ---------------
     * XXX向您指派一个维修单
     * 维修单号：123456
     * 报修类别：办公用品-&gt; 电脑
     * 报修单位：报修单位名称
     * 报修人：报修人姓名
     * 手机号码：1300000000
     * 请尽快维修
     */
    public static JSONObject packJsonNewWorkOrderRecive(String first, String keyword1, String keyword2, String keyword3, String keyword4, String keyword5, String remark,
                                                        String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String keyword4Color, String keyword5Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonkeyword4 = new JSONObject();
            jsonkeyword4.put("value", keyword4);
            jsonkeyword4.put("color", keyword4Color != null ? keyword4Color : templateColor);
            json.put("keyword4", jsonkeyword4);

            JSONObject jsonkeyword5 = new JSONObject();
            jsonkeyword5.put("value", keyword5);
            jsonkeyword5.put("color", keyword5Color != null ? keyword5Color : templateColor);
            json.put("keyword5", jsonkeyword5);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }

    /**
     * 工单进度
     * 模版id:06u5Ujw3StMpifDEGmzqBxrE7tQaqgTzcCWZQ0RmZEo
     * {{first.DATA}}
     * 工单号：{{keyword1.DATA}}
     * 机具型号：{{keyword2.DATA}}
     * 故障码：{{keyword3.DATA}}
     * 处理进度：{{keyword4.DATA}}
     * {{remark.DATA}}
     * 内容示例：
     * 售后服务工单提醒
     * 工单号：1439836481
     * 机具型号：移动
     * 故障码：无法连接
     * 处理进度：处理完毕
     * 感谢您对我们的支持
     */
    public static JSONObject packJsonNewWorkOrderProgress(String first, String keyword1, String keyword2, String keyword3, String keyword4, String remark,
                                                          String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String keyword4Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonkeyword4 = new JSONObject();
            jsonkeyword4.put("value", keyword4);
            jsonkeyword4.put("color", keyword4Color != null ? keyword4Color : templateColor);
            json.put("keyword4", jsonkeyword4);


            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }


    /**
     * 公司注册审核提醒
     * 模版id:fqDuXvXqUlfX2uklXGSj6RrdZ5X5jnJYCisnvLDfZ0g
     * {{first.DATA}}{{
     * 企业名称：{{keyword1.DATA}}
     * 负责人姓名：{{keyword2.DATA}}
     * 联系电话：{{keyword3.DATA}}
     * 注册时间：{{keyword4.DATA}}
     * {{remark.DATA}}
     * 内容示例：
     * 您有一个新注册企业信息待审核，请及时审核！
     * 企业名称：诚信汽修
     * 负责人姓名：小李
     * 联系电话：1234457889
     * 注册时间：2017年5月24日
     * 请及时处理。
     */
    public static JSONObject sendCompanyRegisterProgress(String first, String keyword1, String keyword2, String keyword3, String keyword4, String remark,
                                                         String firstColor, String keyword1Color, String keyword2Color, String keyword3Color, String keyword4Color, String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonkeyword3 = new JSONObject();
            jsonkeyword3.put("value", keyword3);
            jsonkeyword3.put("color", keyword3Color != null ? keyword3Color : templateColor);
            json.put("keyword3", jsonkeyword3);

            JSONObject jsonkeyword4 = new JSONObject();
            jsonkeyword4.put("value", keyword4);
            jsonkeyword4.put("color", keyword4Color != null ? keyword4Color : templateColor);
            json.put("keyword4", jsonkeyword4);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }
    
    
    
    /**
     * 模版ID
		aS8oUWNLuL1iC-by9m51zrBbR6YQUoNl0AWNxJQYxBM
		详细内容
		{{first.DATA}}
		设备编号：{{keyword1.DATA}}
		到期时间：{{keyword2.DATA}}
		{{remark.DATA}}
     */
    public static JSONObject sendCompanyTimeOut(String first, String keyword1, String keyword2, String remark,
                                                         String firstColor, String keyword1Color, String keyword2Color,  String remarkColor) {
        JSONObject json = new JSONObject();
        try {
            JSONObject jsonFirst = new JSONObject();
            jsonFirst.put("value", first);
            jsonFirst.put("color", (firstColor != null) ? firstColor : templateColor);
            json.put("first", jsonFirst);

            JSONObject jsonkeyword1 = new JSONObject();
            jsonkeyword1.put("value", keyword1);
            jsonkeyword1.put("color", keyword1Color != null ? keyword1Color : templateColor);
            json.put("keyword1", jsonkeyword1);

            JSONObject jsonkeyword2 = new JSONObject();
            jsonkeyword2.put("value", keyword2);
            jsonkeyword2.put("color", keyword2Color != null ? keyword2Color : templateColor);
            json.put("keyword2", jsonkeyword2);

            JSONObject jsonRemark = new JSONObject();
            jsonRemark.put("value", remark);
            jsonRemark.put("color", remarkColor != null ? remarkColor : templateColor);
            json.put("remark", jsonRemark);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return json;
    }
    /**
     * @Author: 李宇航
     * @Description:传入需要显示的数据值及颜色调用传参传入形如：
     * packageMessage("标题"，"#000000"，"值1"，"null"，"值2"，"颜色2","尾注"，"结尾色")
     *
     * tips:请注意，必须按照值，颜色这种顺序使用该方法，一个值紧跟着描述该值的颜色，
     * 为null代表默认色
     *
     * @Param: allStr
     * @return: com.alibaba.fastjson.JSONObject
     * @Date: 2018/10/30
     */
    public static JSONObject packageMessage(String... allStr) {
        JSONObject json = new JSONObject();
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("value", allStr[0]);
        jsonObj.put("color", (allStr[1] != null) ? allStr[1] : templateColor);
        json.put("first", jsonObj);
        for(int i=2,j=1;i<allStr.length-2;i+=2,j++) {
            jsonObj=new JSONObject();
            jsonObj.put("value", allStr[i]);
            jsonObj.put("color", allStr[i+1] != null ? allStr[i+1] : templateColor);
            json.put("keyword"+j, jsonObj);
        }
        jsonObj=new JSONObject();
        jsonObj.put("value", allStr[allStr.length-2]);
        jsonObj.put("color", allStr[allStr.length-1] != null ? allStr[allStr.length-1] : templateColor);
        json.put("remark", jsonObj);
        return json;
    }
    /** 
    * @Author: 李宇航
    * @Description: 定义统一颜色风格的微信消息
    * @Param: Color 颜色的枚举类
    * @Param: String[] 消息的value
    * @return: 返回打包好的微信消息数据
    * @Date: 2018/10/31 0031
    */ 
    public static JSONObject packageMessageWithColor(Color color,String... allStr) {
        JSONObject json = new JSONObject();
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("value", allStr[0]);
        jsonObj.put("color", color.getColorCode());
        json.put("first", jsonObj);
        for(int i=1;i<allStr.length-1;i++) {
            jsonObj=new JSONObject();
            jsonObj.put("value", allStr[i]);
            jsonObj.put("color", color.getColorCode());
            json.put("keyword"+i, jsonObj);
        }
        jsonObj=new JSONObject();
        jsonObj.put("value", allStr[allStr.length-1]);
        jsonObj.put("color", color.getColorCode());
        json.put("remark", jsonObj);
        return json;
    }
}
